package br.com.aquinoevasconcelos.control;

import java.util.ArrayList;
import java.util.List;

import br.com.aquinoevasconcelos.modelos.Mensagem;
import br.com.aquinoevasconcelos.repositorio.IRepositorioCliente;
import br.com.aquinoevasconcelos.repositorio.IRepositorioMensagem;
import br.com.aquinoevasconcelos.repositorio.RepositorioCliente;
import br.com.aquinoevasconcelos.repositorio.RepositorioMensagem;
import br.com.aquinoevasconcelos.user.UsuarioCliente;
import br.com.aquinoevasconcelos.util.Validacao;

/**
 * @author Paulo Roberto
 * @email paulolima2008@hotmail.com
 * @version 1.0 @ Propriedade da Techcode
 */

public class ControladorMensagem {

	private IRepositorioMensagem mensagens;
	private Mensagem msg = new Mensagem();
	private IRepositorioCliente cliente;
	private UsuarioCliente usuCliente = new UsuarioCliente();

	// construtor da classe
	public ControladorMensagem(IRepositorioMensagem mensagem) {
		this.mensagens = mensagem;
	}

	// ---------------------------------------------------------------
	public void inserirMensagem(Mensagem mensagem) {

		// seta a data e hora no sistema
		mensagem.setDatahora(new Validacao().eventoDataHora());

		cliente = new RepositorioCliente();

		usuCliente = null;

		usuCliente = cliente.pesquisaCliente(
				"FROM usuario WHERE id =" + mensagem.getCliente().getId()
						+ " AND identificacao ='cliente'").get(0);

		System.out.println("esse é meu nome!!!!!!" + usuCliente.getNome());

		mensagem.setCliente(usuCliente);

		cliente.atualizarCliente(usuCliente);
		mensagens.inserirMensagem(mensagem);
	}

	// ---------------------------------------------------------------
	public void removerMensagem(Mensagem mensagem) {
		mensagens.removerMensagem(mensagem);
	}

	// ---------------------------------------------------------------
	public List<Mensagem> pesquisaMensagem(String query) {
		return mensagens.pesquisaMensagem(query);
	}

	// ---------------------------------------------------------------
	public List<Mensagem> listaMensagemCliente() {
		return mensagens.listaMensagemCliente();
	}

	// ---------------------------------------------------------------
	public Mensagem EditarMensagem(long id) {

		mensagens = new RepositorioMensagem();
		msg = null;

		msg = mensagens.pesquisaMensagem(
				"FROM mensagem WHERE id = '" + id + "'").get(0);

		return msg;
	}

	// ---------------------------------------------------------------

	public List<Mensagem> listaMensagensCliente(long idCliente) {
		mensagens = new RepositorioMensagem();

		ArrayList<Mensagem> listaMensagensCliente = (ArrayList<Mensagem>) mensagens
				.pesquisaMensagem("FROM mensagem WHERE cliente_id = '"
						+ idCliente + "'");

		return listaMensagensCliente;
	}
	// ---------------------------------------------------------------
}
